import { reactive } from "vue";

export function useForm(schema, initialValues) {
  // 表单数据
  const formData = reactive({...initialValues})

  // 初始化默认值
  schema.items.forEach(item => {
    // 检查 formData 对象中是否存在以 item.field 为键的属性
    // 如果存在则跳过当前循环，继续处理下一个元素
    if (formData.hasOwnProperty(item.field)) return;
    // 如果不存在，则将 formData 中以 item.field 为键的属性值设置为 item.defaultValue 的值
    // 如果 item.defaultValue 为 null 或 undefined，则将其设置为 null
    formData[item.field] = item.defaultValue?? null;
  })

  // 动态字段处理
  function getDependencies(item) {
    // 返回依赖字段的值
  }

  // 校验逻辑
  async function validate() {
    // 实现校验逻辑
  }

  return {
    formData,
    validate,
    getDependencies
  }
}